Microcomputer based systems often use a non-volatile memory for permanent storage of data. A favorite type of memory for that purpose is an electrically erasable programmable read only memory (EEPROM). The process of programming or writing to an EEPROM is lengthy, on the order of 15 ms, which requires write periods thousands of times greater than writing to random access memory. To prevent corruption of data in the EEPROM it is necessary to maintain a minimum voltage throughout the write cycle. When the regulate voltage which supplies the microcomputer falls below its nominal value, the microprocessor can "get lost" while running code or can go through a reset. Either of these situations can corrupt the EEPROM data if the appropriate internal programming voltages were enabled at the time of the reset or the code getting lost.
The corruption of EEPROM data is of particular concern in applications where the information is critical and the power supply is not always reliable. One such application is in automotive vehicles which have a number of systems requiring long term memories and which may experience battery removal or other power supply failure just at the time when data is to be written to the non-volatile memory. Vehicle security systems, for example, may rely on security codes or status flags to determine whether a user is authorized and it is important that the stored information be valid. Many available microcomputers have hardware means for disabling writes to EEPROM when the voltage drops to some set level, but if this occurs during the write cycle the data may be corrupted.